/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ComExWeb.dominio;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.validation.constraints.Pattern;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 *
 * @author 
 */
@Entity
@Table(schema = "desenv", name = "PESSOA")
@NamedQueries({
    @NamedQuery(name = "Pessoa.findAll", query = "SELECT p FROM Pessoa p")})
public class Pessoa implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "ID_PESSOA")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long idPessoa;
    @Column(name = "NM_FANTAZIA")
    private String nmFantazia;
    @Column(name = "NM_RAZAO_SOCIAL")
    private String nmRazaoSocial;
    @Column(name = "DS_EMAIL_OPERACIONAL")
    private String nmEmailOperacional;
    @Column(name = "NM_CONTATO")
    private String nmContato;
    @Column(name = "DS_EMAIL_CONTATO")
    private String dsEmailContato;
    @Column(name = "NR_INSCRICAO_ESTADUAL")
    private String nrIncricaoEstadual;
    @Column(name = "CD_CPF_CNPJ")
    private String cdCpfCnpj;
    @Column(name = "DT_CADASTRO")
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date dtCadastro;
    @Column(name = "NR_SUFRA")
    private String nrSufra;
    @Column(name = "DT_VALID_VINC_REF")
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date dtValidVincRef;
    @Column(name = "CD_REGIAO")
    private String cdRegiao;
    @Column(name = "CD_SIGLA_PROCESSO")
    private String cdSiglaProcesso;
    @OneToMany(mappedBy = "pessoa")
    private List<Endereco> enderecoPessoaList;

    public Pessoa() {
    }

    public Pessoa(Long idPessoa) {
        this.idPessoa = idPessoa;
    }

    public Long getIdPessoa() {
        return idPessoa;
    }

    public void setIdPessoa(Long idPessoa) {
        this.idPessoa = idPessoa;
    }
    private static final Logger log = LoggerFactory.getLogger(Pessoa.class);

    @Override
    public int hashCode() {



        int hash = 0;
        hash += (idPessoa != null ? idPessoa.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {

        // TODO: Warning - this method won't work in the case the id fields are not set
        boolean resultado;
        if (!(object instanceof Pessoa)) {
            resultado = false;
        } else {
            Pessoa other = (Pessoa) object;
            if ((this.idPessoa == null && other.idPessoa != null) || (this.idPessoa != null && !this.idPessoa.equals(other.idPessoa))) {
                resultado = false;
            } else {
                resultado = true;
            }
        }


        return resultado;

    }

    /**
     * @return the nmFantazia
     */
    public String getNmFantazia() {
        return nmFantazia;
    }

    /**
     * @param nmFantazia the nmFantazia to set
     */
    public void setNmFantazia(String nmFantazia) {
        this.nmFantazia = nmFantazia;
    }

    /**
     * @return the nmRazaoSocial
     */
    public String getNmRazaoSocial() {
        return nmRazaoSocial;
    }

    /**
     * @param nmRazaoSocial the nmRazaoSocial to set
     */
    public void setNmRazaoSocial(String nmRazaoSocial) {
        this.nmRazaoSocial = nmRazaoSocial;
    }

    /**
     * @return the nmEmailOperacional
     */
    public String getNmEmailOperacional() {
        return nmEmailOperacional;
    }

    /**
     * @param nmEmailOperacional the nmEmailOperacional to set
     */
    public void setNmEmailOperacional(String nmEmailOperacional) {
        this.nmEmailOperacional = nmEmailOperacional;
    }

    /**
     * @return the nmContato
     */
    public String getNmContato() {
        return nmContato;
    }

    /**
     * @param nmContato the nmContato to set
     */
    public void setNmContato(String nmContato) {
        this.nmContato = nmContato;
    }

    /**
     * @return the dsEmailContato
     */
    public String getDsEmailContato() {
        return dsEmailContato;
    }

    /**
     * @param dsEmailContato the dsEmailContato to set
     */
    public void setDsEmailContato(String dsEmailContato) {
        this.dsEmailContato = dsEmailContato;
    }

    /**
     * @return the nrIncricaoEstadual
     */
    public String getNrIncricaoEstadual() {
        return nrIncricaoEstadual;
    }

    /**
     * @param nrIncricaoEstadual the nrIncricaoEstadual to set
     */
    public void setNrIncricaoEstadual(String nrIncricaoEstadual) {
        this.nrIncricaoEstadual = nrIncricaoEstadual;
    }

    /**
     * @return the cdCpfCnpj
     */
    public String getCdCpfCnpj() {
        return cdCpfCnpj;
    }

    /**
     * @param cdCpfCnpj the cdCpfCnpj to set
     */
    public void setCdCpfCnpj(String cdCpfCnpj) {
        this.cdCpfCnpj = cdCpfCnpj;
    }

    /**
     * @return the dtCadastro
     */
    public Date getDtCadastro() {
        return dtCadastro;
    }

    /**
     * @param dtCadastro the dtCadastro to set
     */
    public void setDtCadastro(Date dtCadastro) {
        this.dtCadastro = dtCadastro;
    }

    /**
     * @return the nrSufra
     */
    public String getNrSufra() {
        return nrSufra;
    }

    /**
     * @param nrSufra the nrSufra to set
     */
    public void setNrSufra(String nrSufra) {
        this.nrSufra = nrSufra;
    }

    /**
     * @return the dtValidVincRef
     */
    public Date getDtValidVincRef() {
        return dtValidVincRef;
    }

    /**
     * @param dtValidVincRef the dtValidVincRef to set
     */
    public void setDtValidVincRef(Date dtValidVincRef) {
        this.dtValidVincRef = dtValidVincRef;
    }

    /**
     * @return the cdRegiao
     */
    public String getCdRegiao() {
        return cdRegiao;
    }

    /**
     * @param cdRegiao the cdRegiao to set
     */
    public void setCdRegiao(String cdRegiao) {
        this.cdRegiao = cdRegiao;
    }

    /**
     * @return the cdSiglaProcesso
     */
    public String getCdSiglaProcesso() {
        return cdSiglaProcesso;
    }

    /**
     * @param cdSiglaProcesso the cdSiglaProcesso to set
     */
    public void setCdSiglaProcesso(String cdSiglaProcesso) {
        this.cdSiglaProcesso = cdSiglaProcesso;
    }

    public List<Endereco> getEnderecoPessoaList() {
        return enderecoPessoaList;
    }

    public void setEnderecoPessoaList(List<Endereco> enderecoPessoaList) {
        this.enderecoPessoaList = enderecoPessoaList;
    }

    
}
